package com.ibeeking.found.cop.b.rest.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import com.ibeeking.found.cop.service.common.param.CopEmployeeParam;
import com.ibeeking.found.cop.service.common.query.CopEmployeePageQuery;
import com.ibeeking.found.cop.service.common.query.CopEmployeeQuery;

import com.ibeeking.found.cop.service.common.vo.CopEmployeeVO;

import java.util.List;

public interface ICopEmployeeService {

    List<CopEmployeeVO> list(CopEmployeeQuery query);

    Page<CopEmployeeVO> pageList(CopEmployeePageQuery pageQuery);

    Page<CopEmployeeVO> pageListWithSubDepartment(CopEmployeePageQuery pageQuery);

    List<CopEmployeeVO> listByDepartmentId(Long departmentId);

    CopEmployeeVO view(Long id);

    Integer syncEmployeeFromWx(Long departmentId);

    Integer batchInsertEmployeeListFromWxCp(List<CopEmployeeParam> params);

    Integer insertEmployeeFromWxCp(CopEmployeeParam param);

    Integer updateEmployeeFromWxCp(CopEmployeeParam param);

    Integer deleteEmployeeFromWxCp(Long tenantId, Long id);

    Integer saveOrUpdateOrDeleteBatchEmployee(Long tenantId, List<CopEmployeeParam> params);
}
